false的情況,被稱為Falsy Value(假值):"":空字串
0 、-0:正、負零
NaN:Not a Number
當不是數值型別與數值一起運算或想轉數值型別不成功無法計算時,會回傳NaN。而NaN是數值型別。
console.log(Number(23 + "day")); // NaN
console.log(typeof NaN); // "number"
null:空值 「要讓這個變數的值是空的。」
var a = null;
console.log(a); // null
console.log(typeof null); // "object"
奇妙現象,使用typeof觀察null型別,不是null型別而是object物件型別。據說是最初創造JavaScript的bug,隨著使用率高評估後不適合修改的關係。
undefined:未定義 「某變數已被宣告,但值的內容未被定義的預設值。」
var b;
console.log(b); // undefined
console.log(typeof undefined); // "undefined"
false:false
Boolean("") // false
Boolean(0) // false
Boolean(-0) // false
Boolean(NaN) // false
Boolean(null) // false
Boolean(undefined) // false
Boolean(false) // false
範例:
"0"、"false":空字串以外的字串[]:空陣列{}:空物件function(){}:空函式Boolean("0") // true
Boolean("false") // true
Boolean([]) // true
Boolean({}) // true
Boolean(function(){}) // true